package com.sugon.service;

import com.sugon.entity.DevMaintenPlanEntity;
import com.sugon.entity.DevPlanRuleEntity;

import java.util.List;
import java.util.Map;

/**
 * 设备维护计划与规程关联配置表Service接口
 *
 * @author sugon
 * @date 2020-05-19 09:42:50
 */
public interface DevPlanRuleService {

    /**
     * 根据主键查询实体
     *
     * @param id 主键
     * @return 实体
     */
    DevPlanRuleEntity queryObject(String id);

    /**
     * 分页查询
     *
     * @param map 参数
     * @return list
     */
    List<DevPlanRuleEntity> queryList(Map<String, Object> map);

    /**
     * 分页统计总数
     *
     * @param map 参数
     * @return 总数
     */
    int queryTotal(Map<String, Object> map);


    List<DevMaintenPlanEntity> queryRelatedRuleList(Map<String, Object> map);

    int queryRelatedRuleTotal(Map<String, Object> map);

    /**
     * 保存实体
     *
     * @param devPlanRule 实体
     * @return 保存条数
     */
    int save(DevPlanRuleEntity devPlanRule);

    /**
     * 根据主键更新实体
     *
     * @param devPlanRule 实体
     * @return 更新条数
     */
    int update(DevPlanRuleEntity devPlanRule);

    /**
     * 根据主键删除
     *
     * @param id
     * @return 删除条数
     */
    int delete(String id);

    /**
     * 根据主键批量删除
     *
     * @param ids
     * @return 删除条数
     */
    int deleteBatch(String[] ids);

    /**
     * 更新维护规程日期
     *
     * @param rules
     * @return
     */
    int updateDay(List<Map<String, Object>> rules);

    /**
     * 校验维护计划和规程是否已关联过
     *
     * @param planId
     * @param ruleId
     * @return
     */
    boolean checkIsExists(String planId, String ruleId);

    /**
     * 校验维护计划和规程是否已关联过
     *
     * @param planId 设备维护计划
     * @param ruleId 设备维护规程
     * @return
     */
    List<DevPlanRuleEntity> list(String planId, String ruleId);
}
